﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace K3R.Extensions {
	public static class StringExtensions {
		public static int ToInt(this string value, int defaultValue) {
			int rv;
			if (!int.TryParse(value, out rv))
				rv = defaultValue;
			return rv;
		}

		public static int ToInt(this string value) {
			int rv;
			int.TryParse(value, out rv);
			return rv;
		}

		public static decimal ToDecimal(this string value, decimal defaultValue) {
			decimal rv;
			if (!decimal.TryParse(value, out rv))
				rv = defaultValue;
			return rv;
		}

		public static decimal ToDecimal(this string value) {
			decimal rv;
			decimal.TryParse(value, out rv);
			return rv;
		}

		public static DateTime ToDateTime(this string value, string format, DateTime defaultValue) {
			DateTime rv;
			if (!DateTime.TryParseExact(value, format, null, DateTimeStyles.None, out rv))
				rv = defaultValue;
			return rv;
		}

		public static DateTime ToDateTime(this string value, DateTime defaultValue) {
			DateTime rv;
			if (!DateTime.TryParse(value, out rv))
				rv = defaultValue;
			return rv;
		}

		public static DateTime ToDateTime(this string value, string format) {
			return DateTime.ParseExact(value, format, null);
		}
	}
}
